package aplicacio;

import com.db4o.Db4o;
import com.db4o.ObjectContainer;
import com.db4o.config.Configuration;
import domini.Ocupacio;
import domini.Plasa;
import domini.Tarifa;
import java.io.File;
import library.inout.Terminal; 

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.6CE3438C-CB3B-E2A4-A978-0933FC9ED2F2]
// </editor-fold> 
public class CU00 {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.E24AFE65-DF34-A874-BDAD-8FD37A093265]
    // </editor-fold> 
    private ObjectContainer oc;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.ED303D68-0EF1-337B-76F5-C7A4FB21AEA5]
    // </editor-fold> 
    public CU00 () {
        crearObjectContainer();
        crearObjectes();
        tancarObjectContainer();
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.9BC63033-7842-AE13-67E4-DD83E04DE4EA]
    // </editor-fold> 
    private void crearObjectContainer () {
        Configuration conf = Db4o.configure();
        conf.objectClass("Plaça").cascadeOnUpdate(true);
        String filename = "parking.yap";
        File file = new File(filename);
        boolean esborrat = file.delete();
        Terminal.print("\n\nReconstrucció de la persistència.\n\n");
        if (esborrat) {
            Terminal.print("S'ha eliminat el fitxer parking.yap del disc.\n");
        } else {
            Terminal.print("No s'ha pogut eliminar el fitxer parking.yap del disc.\n");
        }
        oc = Db4o.openFile(filename);
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.09A2D3F7-2880-BC4E-C2A7-923647F9F9AE]
    // </editor-fold> 
    private void crearObjectes () {
        Terminal.print("\nPassivant objectes.......\n");
        crearPassivarTarifes();
        crearPassivarPlaces();
        Terminal.print("Els objectes a emprar en els jocs de proves han sigut passivats.\n");
        Terminal.print("El ODBMS parking.yap està a punt per ser emprat.\n");
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.5C7569C5-1AF0-BA8D-57D5-BEB35D4D1988]
    // </editor-fold> 
    private void crearPassivarTarifes () {
        Tarifa t1 = new Tarifa(1, "01/01/2008-00:00", "01/04/2008-00:00", 0.03);
        Tarifa t2 = new Tarifa(2, "01/04/2008-00:00", "01/08/2008-00:00", 0.04);
        Tarifa t3 = new Tarifa(3, "01/09/2008-00:00", "01/01/2009-00:00", 0.05);
        Tarifa t4 = new Tarifa(4, "01/09/2009-00:00", "01/04/2009-00:00", 0.06);
        oc.set(t1);
        oc.set(t2);
        oc.set(t3);
        oc.set(t4);
    }

    /**
     *  Tanca l'objecte ObjectContainer.
     */
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.9DB58126-F37B-3FC3-553D-AED7CB55D2C4]
    // </editor-fold> 
    private void tancarObjectContainer () {
        oc.close();
        Terminal.print("Fi del procés.\n\n");
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.4FF10EBC-F361-FAB7-F63F-3898A901D1CE]
    // </editor-fold> 
    private void crearPassivarPlaces () {
        Plasa p1 = new Plasa(1);
        p1.getOcupacions().add(new Ocupacio("05/01/2008-11:20", "05/01/2008-11:30"));
        p1.getOcupacions().add(new Ocupacio("11/07/2008-10:11", "11/07/2008-13:10"));
        p1.getOcupacions().add(new Ocupacio("23/08/2008-19:07", "23/08/2008-23:12"));
        p1.getOcupacions().add(new Ocupacio("17/09/2008-09:00", "18/09/2008-08:10"));

        Plasa p2 = new Plasa(2);
        p2.getOcupacions().add(new Ocupacio("05/01/2008-11:23", "05/01/2008-16:35"));
        p2.getOcupacions().add(new Ocupacio("11/07/2008-10:11", "11/07/2008-13:10"));
        p2.getOcupacions().add(new Ocupacio("23/08/2008-19:07", "23/08/2008-23:12"));
        p2.getOcupacions().add(new Ocupacio("17/09/2008-09:00", "18/09/2008-08:10"));
        p2.getOcupacions().add(new Ocupacio("22/10/2008-15:27", "22/11/2008-16:43"));
        p2.getOcupacions().add(new Ocupacio("23/12/2008-17:36"));

        Plasa p3 = new Plasa(3);
        p3.getOcupacions().add(new Ocupacio("05/01/2008-11:23", "05/01/2008-16:35"));
        p3.getOcupacions().add(new Ocupacio("11/07/2008-10:11", "11/07/2008-13:10"));
        p3.getOcupacions().add(new Ocupacio("23/08/2008-19:07", "23/08/2008-23:12"));
        p3.getOcupacions().add(new Ocupacio("17/09/2008-09:00", "18/09/2008-08:10"));
        p3.getOcupacions().add(new Ocupacio("22/10/2008-15:27", "22/11/2008-16:43"));
        p3.getOcupacions().add(new Ocupacio("23/12/2008-17:36"));

        Plasa p4 = new Plasa(4);
        p4.getOcupacions().add(new Ocupacio("05/01/2008-11:23", "05/01/2008-16:35"));
        p4.getOcupacions().add(new Ocupacio("11/07/2008-10:11", "11/07/2008-13:10"));
        p4.getOcupacions().add(new Ocupacio("23/08/2008-19:07", "23/08/2008-23:12"));
        p4.getOcupacions().add(new Ocupacio("17/09/2008-09:00", "18/09/2008-08:10"));
        p4.getOcupacions().add(new Ocupacio("22/10/2008-15:27", "22/11/2008-16:43"));
        p4.getOcupacions().add(new Ocupacio("23/12/2008-17:36"));

        Plasa p5 = new Plasa(5);
        p5.getOcupacions().add(new Ocupacio("05/01/2008-11:23", "05/01/2008-16:35"));
        p5.getOcupacions().add(new Ocupacio("11/07/2008-10:11", "11/07/2008-13:10"));
        p5.getOcupacions().add(new Ocupacio("23/08/2008-19:07", "23/08/2008-23:12"));
        p5.getOcupacions().add(new Ocupacio("17/09/2008-09:00", "18/09/2008-08:10"));
        p5.getOcupacions().add(new Ocupacio("22/10/2008-15:27", "22/11/2008-16:43"));
        p5.getOcupacions().add(new Ocupacio("23/12/2008-17:36"));

        Plasa p6 = new Plasa(6);
        p6.getOcupacions().add(new Ocupacio("05/01/2008-11:23", "05/01/2008-16:35"));
        p6.getOcupacions().add(new Ocupacio("11/07/2008-10:11", "11/07/2008-13:10"));
        p6.getOcupacions().add(new Ocupacio("23/08/2008-19:07", "23/08/2008-23:12"));
        p6.getOcupacions().add(new Ocupacio("17/09/2008-09:00", "18/09/2008-08:10"));
        p6.getOcupacions().add(new Ocupacio("22/10/2008-15:27", "22/11/2008-16:43"));
        p6.getOcupacions().add(new Ocupacio("23/12/2008-17:36"));

        oc.set(p1);
        oc.set(p2);
        oc.set(p3);
        oc.set(p4);
        oc.set(p5);
        oc.set(p6);
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.72C3C8AC-91C1-A112-B028-FC987F5BB3D1]
    // </editor-fold> 
    public static void main (String[] args) {
        new CU00();
    }
}
